Data Oriented Programming with Python
#PyCon_APAC_2022
https://tw.pycon.org/2022/en-us/conference/talk/240
https://docs.google.com/presentation/d/1HFF23gMrgV_prjwPxQ20K8_-m-fkmKcS0y-YLJ0YhTg/edit?usp=sharing
ClojureにインスパイアされたプログラミングパラダイムがDOP
Pythonは通常OOPで教えられるが、このトークでDOPを何にいつどのように使うかを示す
DOPの原則
1. Separate code (behavior) from data.
データを返す関数になった!!(slide=14)
データを操作する関数
クラス定義は消えた
2. Represent data with generic data structures.
クラス(specific)ではなく辞書(genericなデータ構造)(slide=17)
3. Data is immutable.
copy()して扱う(slide=20)
感想: #別名参照問題 に対処しているように見える
#pyrsistent (mapの例:m)
4. Separate data schema from data representation.
#jsonschema
DOPの各原則のメリット・デメリットも共有される
Flaskのサンプルコード(slide=26 以降)
https://github.com/rubiagatra/dop-python
参考:https://blog.klipse.tech/2020/09/29/do-principles.html
OO(オブジェクト指向言語)とDO(FP:関数型言語)
このブログの dop タグには取り上げられたのと同名のエントリが見つかる
👉 『Data-Oriented Programming』